<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title></title>
	<link rel="stylesheet" href="">
</head>
<body>
<script src='http://cdn.jsdelivr.net/vue/1.0.26/vue.js'></script>
<script src='https://cdn.jsdelivr.net/vue.router/0.7.10/vue-router.min.js'></script>
<div id="root">
	<div>
		{{a}}-{{b}}
	</div>
</div>
<script>
	/**
	 * 计算属性是用来声明式的描述一个值依赖了其它的值。当你在模板里把数据绑定到一个计算属性上时，Vue
	 * 会在其依赖的任何值导致该计算属性改变时更新
	 * DOM。这个功能非常强大，它可以让你的代码更加声明式、数据驱动并且易于维护。
	 * 模板中表达式非常便利，但是它们实际上只用于简单的操作。
	 * 模板是为了描述视图的结构,在模板中放入太多的逻辑会让模板过重且难以维护。
	 * 这就是为什么 Vue.js 将绑定表达式限制为一个表达式,
	 * 如果需要多于一个表达式的逻辑，应当使用计算属性。
	 */
	var vm = new Vue({
		el : '#root',
		data : {
			a : 1,
		},
		computed : {
			b : function(){
				return this.a + 1;
			}
		}
	});
	console.log(vm.b);//2
	vm.a = 3;
	console.log(vm.b);//4
	/**
	 * 你可以像绑定普通属性一样在模板中绑定计算属性。Vue 知道 vm.b
	 * 依赖于 vm.a，因此当 vm.a 发生改变时，依赖于 vm.b
	 * 的绑定也会更新。而且最妙的是我们是声明式地创建这种依赖关系：
	 * 计算属性的 getter
	 * 是干净无副作用的，因此也是易于测试和理解的。
	 */
</script>	
</body>
</html>